#ifndef MAMBA_SERVICE_ASPECT_HTTP_READER_HPP
#define MAMBA_SERVICE_ASPECT_HTTP_READER_HPP

#include <fas/aop/aspect.hpp>
#include <fas/misc/http/reader/body_reader.hpp>
#include <fas/misc/http/reader/server_header_reader.hpp>


namespace fasys{

namespace ap = ::fas::pattern;
namespace aa = ::fas::aop;
namespace ahr = ::fas::http::reader;

typedef ap::type_list_n<
  // Заголовки которые будут задействованы во всех comet-серверах 
  // ( По умолчанию используется только ContentLength )
>::type http_header_reader_advice_list;

typedef ap::type_list_n<
  // Сюда пока ничего не надо добавлять (по умолчанию используется ad_content_reader )
>::type http_body_reader_advice_list;

typedef aa::aspect< http_header_reader_advice_list > http_header_reader_aspect;
typedef aa::aspect< http_body_reader_advice_list > http_body_reader_aspect;

template<typename A = aa::aspect<> >
struct header_reader
  : ahr::server_header_reader< typename aa::aspect_merge< http_header_reader_aspect, A>::type >
{
};

template<typename A = aa::aspect<> >
struct body_reader
  : ahr::body_reader< typename aa::aspect_merge<http_body_reader_aspect, A>::type >
{
};

}
#endif
